Storage devices using semiconductor elements are broadly classified into two categories: a volatile device that loses stored data when power supply stops, and a non-volatile device that retains stored data even when power is not supplied.
A typical example of a volatile, storage device is a DRAM (dynamic random access memory). A DRAM stores data (information) in such a manner that a transistor included in a storage element is selected and electric charge is stored in a capacitor.
When data is read from a DRAM, electric charge in a capacitor is lost on the above principle; thus, another write operation is necessary every time data is read. Moreover, a transistor included in a storage element has a leakage current and electric charge flows into or out of a capacitor even when the transistor is not selected, so that the data retention time is short. For that reason, another write operation (refresh operation) is necessary at predetermined intervals, and it is difficult to sufficiently reduce power consumption of the storage element. Furthermore, since stored data is lost when power supply stops, an additional storage device using a magnetic material or an optical material is needed in order to hold the data for a long time.
Another example of a volatile storage device is an SRAM (static random access memory). An SRAM retains data by using a circuit such as a flip-flop and thus does not need a refresh operation. This means that an SRAM has an advantage over a DRAM. However, cost per storage capacity is increased because of the use of a flip-flop or the like. Moreover, as in a DRAM, stored data in an SRAM is lost when power supply stops.
A typical example of a non-volatile storage device is a flash memory. A flash memory includes a floating gate between a gate electrode and a channel formation region in a transistor and stores data by holding electric charge in the floating gate. Therefore, a flash memory has advantages in that the data retention time is extremely long (almost permanent) and a refresh operation which is necessary in a volatile storage device is not needed (e.g., see Patent Document 1).
However, a gate insulating layer included in a storage element deteriorates by tunneling current generated in writing, so that the storage element stops its function after a limited number of write operations. In order to reduce adverse effects of this problem, a method of equalizing the number of write operations for storage elements is employed, for example, in which case a complicated peripheral circuit is needed. Moreover, employing such a method does not solve the fundamental problem of lifetime. In other words, a flash memory is not suitable for applications in which data is frequently rewritten.
In addition, high voltage is necessary to inject electric charge in the floating gate or to remove the electric charge, and a circuit for generating high voltage is also necessary. Further, it takes a relatively long time to perform an operation for injecting or removing electric charge, so that it is not easy to increase the speed of write and erase operations.